博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-文件上传
阅读量:5772 次
发布时间:2019-06-18

本文共 2949 字,大约阅读时间需要 9 分钟。

springmvc实现简单文件上传和下载

思路:1:maven导入common-fileupload包 

   2:springmvc.xml导入文件多分布解析器

   3:使用MultipartFile获取上传的文件名和转换此文件为服务器上面的指定目录下文件(上传的jsp必须为multipart/form-data,不然multipartfile获取的值为null)

   4:下载: 使用FileCopyUtils.copyToByteArray(file)将目标文件转换为二进制数组,设置响应头和下载的文件名称,构建ResponseEntity对象返回到浏览器

1

<dependency>

<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

2

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"></property>
</bean>

jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
文件
下载

servlet代码

package com.crazy.goods.tools.fileupload;import java.io.File;import java.io.IOException;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.util.FileCopyUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;/** * @author Administrator * 创建时间:2017年7月6日上午8:46:53 */@Controllerpublic class UploadServlet {    public String filePath="c:";    @RequestMapping(value="/upload")    public String upload(MultipartFile aa,HttpServletResponse response) throws IllegalStateException, IOException {        String originalFilename = aa.getOriginalFilename();//获取到的是文件的名字        String name = aa.getName(); //或者的是aa的值        String destFile = filePath+"/"+originalFilename;        aa.transferTo(new File(destFile)); //将文件转换为路径下面的文件        response.getWriter().println("upload sucess");        return null;            }    @RequestMapping(value="/upload1")    public  String  uploadpage() {        return "upload";    }    @RequestMapping(value="download")    public ResponseEntity
down(String fileName) throws IOException{ //需要下载的目标文件 File file=new File(filePath+"/"+fileName); //读取目标文件为二进制数组 byte[] fileByte=FileCopyUtils.copyToByteArray(file); //设置响应头 HttpHeaders hh=new HttpHeaders(); //设置下载的文件的名称 hh.setContentDispositionFormData("attachment", URLEncoder.encode(fileName, "UTF-8")); //构建ResponseEntity对象 ResponseEntity
re=new ResponseEntity
(fileByte, hh, HttpStatus.CREATED); return re; }}

 

转载于:https://www.cnblogs.com/wdx330616/p/7128213.html

你可能感兴趣的文章
【设计模式】数据访问对象模式
查看>>
Tomcat8 配置Oracle11g数据源
查看>>
【PHP面向对象(OOP)编程入门教程】8.构造方法__construct()与析构方法__destruct()
查看>>
ThinkPHP常用配置路径
查看>>
阿里架构师:程序员必须掌握的几项核心技术能力
查看>>
程序员常用的六大技术博客类
查看>>
vue中动画的实现的几种方式
查看>>
Iceworks 2.8.0 发布,自定义你的 React 模板
查看>>
胖哥学SpringMVC:请求方式转换过滤器配置
查看>>
Kotlin 更加优雅的 Builder - 理解 with
查看>>
前端日拱一卒D6——字符编码与浏览器解析
查看>>
python学习笔记- 多线程
查看>>
换一种思维看待PHP VS Node.js
查看>>
举重若轻的人人车移动端数据平台
查看>>
Oracle回应用户锁定,自治数据库是更好选择
查看>>
深入理解浏览器的缓存机制
查看>>
使用 Swift 3.0 操控日期
查看>>
微软向Linux社区开放60000多项专利:对开源微软是认真的
查看>>
版本控制、Git及其在企业中的应用
查看>>
Ruby开发者已可通过Fog管理Microsoft Azure服务
查看>>